From: Giovanni Campagna Date: Thu, 3 Jan 2013 00:02:13 +0000 (+0100) Subject: UnlockDialog: honor org.gnome.desktop.screensaver.user-switch-enabled X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~5121 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=8f41c6bad88f9c1a9d2016789158dad9f7ef2832;p=gnome-shell.git UnlockDialog: honor org.gnome.desktop.screensaver.user-switch-enabled The screensaver schema has a key that it is meant for locking down the ability to switch user when the screen is locked, but support for it was not implemented in the new screenshield. Fix that by checking the key before creating the button. https://bugzilla.gnome.org/show_bug.cgi?id=691042 --- diff --git a/js/ui/unlockDialog.js b/js/ui/unlockDialog.js index 794f6cd83..6b6127bbc 100644 --- a/js/ui/unlockDialog.js +++ b/js/ui/unlockDialog.js @@ -198,18 +198,23 @@ const UnlockDialog = new Lang.Class({ x_align: St.Align.END, y_align: St.Align.MIDDLE }); - let otherUserLabel = new St.Label({ text: _("Log in as another user"), - style_class: 'login-dialog-not-listed-label' }); - this._otherUserButton = new St.Button({ style_class: 'login-dialog-not-listed-button', - can_focus: true, - child: otherUserLabel, - reactive: true, - x_align: St.Align.START, - x_fill: true }); - this._otherUserButton.connect('clicked', Lang.bind(this, this._otherUserClicked)); - this.dialogLayout.add(this._otherUserButton, - { x_align: St.Align.START, - x_fill: false }); + let screenSaverSettings = new Gio.Settings({ schema: 'org.gnome.desktop.screensaver' }); + if (screenSaverSettings.get_boolean('user-switch-enabled')) { + let otherUserLabel = new St.Label({ text: _("Log in as another user"), + style_class: 'login-dialog-not-listed-label' }); + this._otherUserButton = new St.Button({ style_class: 'login-dialog-not-listed-button', + can_focus: true, + child: otherUserLabel, + reactive: true, + x_align: St.Align.START, + x_fill: true }); + this._otherUserButton.connect('clicked', Lang.bind(this, this._otherUserClicked)); + this.dialogLayout.add(this._otherUserButton, + { x_align: St.Align.START, + x_fill: false }); + } else { + this._otherUserButton = null; + } this._updateSensitivity(true); @@ -231,8 +236,10 @@ const UnlockDialog = new Lang.Class({ this._promptEntry.reactive = sensitive; this._promptEntry.clutter_text.editable = sensitive; this._updateOkButtonSensitivity(sensitive && this._promptEntry.text.length > 0); - this._otherUserButton.reactive = sensitive; - this._otherUserButton.can_focus = sensitive; + if (this._otherUserButton) { + this._otherUserButton.reactive = sensitive; + this._otherUserButton.can_focus = sensitive; + } }, _updateOkButtonSensitivity: function(sensitive) {